package com.app.diary.db;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteStatement;

import androidx.annotation.Nullable;

import com.app.diary.Mapp;
import com.app.diary.bean.Diary;
import com.app.diary.utils.ToastUtils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

/**
 * 数据库操作工具
 */
public class DbHelper extends SQLiteOpenHelper {

    public static final String DB_NAME = "diary_1.db";//数据库的名称
    public static final int DB_VERSION = 1;//数据库的版本号
    public static final String TABLE_DIARY = "diary_1";//表

    public DbHelper(@Nullable Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        createDiaryTable(db);
        insertDefaultData(db);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }

    /**
     * 创建表
     */
    private void createDiaryTable(SQLiteDatabase db) {
        //如果表已存在则删除表
        String dropSql = "DROP TABLE IF EXISTS " + TABLE_DIARY + ";";
        db.execSQL(dropSql);

        //创建表
        String createSql = "CREATE TABLE IF NOT EXISTS " + TABLE_DIARY + " ("
                + "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "
                + "date INTEGER NOT NULL, "
                + "title VARCHAR NOT NULL, "
                + "content VARCHAR NOT NULL, "
                + "create_time INTEGER NOT NULL, "
                + "update_time INTEGER NOT NULL"
                + ");";
        db.execSQL(createSql);


    }

    /**
     * 插入默认数据到表
     */
    private void insertDefaultData(SQLiteDatabase db) {
        // 插入默认条目
        String insertSql = "INSERT INTO " + TABLE_DIARY + " (date, title, content, create_time, update_time) " +
                "VALUES (?, ?, ?, ?, ?);";

        SQLiteStatement stmt = db.compileStatement(insertSql);


        Calendar calendar = Calendar.getInstance();
        calendar.set(2016, Calendar.DECEMBER, 12, 0, 0, 0);
        long dateInMillis = calendar.getTimeInMillis();

        stmt.bindLong(1, dateInMillis);
        stmt.bindString(2, "我的小学");
        stmt.bindString(3, "1、特别喜欢上手工课，每次老师教做一些小玩意儿，像折纸飞机呀、用彩泥捏小动物，我总能做得又快又好。折的纸飞机飞得又远又稳，捏出来的小动物活灵活现的。\n" +
                "2、特别爱听故事，听多了自己也就会讲了。课间休息或者午休的时候，我就会给周围的小伙伴们讲从书里看来或者长辈那听来的故事，能把故事讲得绘声绘色的，感觉自己讲故事还挺有天赋呢。\n" +
                "3、学校里课间活动大家都跳绳，我练着练着就跳得特别好了，单脚跳、双脚交替跳、编花跳，各种花样我都不在话下。"); // 内容
        stmt.bindLong(4, System.currentTimeMillis());
        stmt.bindLong(5, System.currentTimeMillis());
        stmt.executeInsert(); // 执行插入操作


        calendar = Calendar.getInstance();
        calendar.set(2019, Calendar.JULY, 21, 0, 0, 0); // 注意：月份是从0开始的，所以9月是Calendar.SEPTEMBER
        dateInMillis = calendar.getTimeInMillis();

        stmt.bindLong(1, dateInMillis);
        stmt.bindString(2, "我的初中");
        stmt.bindString(3, "1、做饭小天才：爸妈有时候忙，我就试着自己做饭，没想到还挺有天赋的。从简单的炒个鸡蛋、煮个面条开始，慢慢就能做一桌子家常饭菜了，而且味道还挺不错。有时候家里来客人了，我做的菜还能被夸上几句，心里可美了，感觉自己在做饭这块挺有一手的。\n" +
                "2、整理小能手：教室后面的图书角、班级的杂物柜，每次乱得不成样子的时候，我出马一收拾，立马就变得整整齐齐的了。我特别擅长给东西分类，找个合适的摆放方法，不光看着舒心，要用的时候也能很快找到，同学们都夸我厉害，老师也经常让我负责整理班级的一些物品呢。"); // 内容
        stmt.bindLong(4, System.currentTimeMillis());
        stmt.bindLong(5, System.currentTimeMillis());
        stmt.executeInsert();

        calendar = Calendar.getInstance();
        calendar.set(2021, Calendar.SEPTEMBER, 15, 0, 0, 0); // 注意：月份是从0开始的，所以9月是Calendar.SEPTEMBER
        dateInMillis = calendar.getTimeInMillis();

        stmt.bindLong(1, dateInMillis);
        stmt.bindString(2, "我的高中");
        stmt.bindString(3, "1、解题达人：像数学里的圆锥曲线那部分，好多同学觉得特别难，我就不知道为啥，一研究就来劲，各种题型摸得透透的，还总结出了自己的一套解题小妙招。每次老师讲完课，同学们来问我题，我基本都能给讲明白，成了班里这部分知识的 “小老师” 了，大家遇到难题都爱找我帮忙，特有成就感。\n" +
                "2、黑板报主创：高中经常要出黑板报嘛，我在画画、写字还有排版设计上有点想法。每次负责出黑板报的时候，我就能带着几个同学，从构思内容、画插图到写艺术字，一点点把黑板弄得漂漂亮亮的，每次评比我们班的黑板报总能拿个好名次，这也算是我的一个小特长了。"); // 内容
        stmt.bindLong(4, System.currentTimeMillis());
        stmt.bindLong(5, System.currentTimeMillis());
        stmt.executeInsert();


        calendar = Calendar.getInstance();
        calendar.set(2024, Calendar.MAY, 1, 0, 0, 0);
        dateInMillis = calendar.getTimeInMillis();

        stmt.bindLong(1, dateInMillis); // 日期
        stmt.bindString(2, "我的大学"); // 标题
        stmt.bindString(3, "1、社交与沟通能力：积极参与各类社团活动、社会实践等，能与不同背景、不同性格的人建立良好关系，有效沟通协作，解决遇到的各种问题，无论是在团队合作项目中还是拓展人脉资源方面都做得很出色。\n"+
                "2、大学里做小组汇报、参加比赛啥的都离不开 PPT。我知道怎么选合适的模板，搭配好看的字体和颜色，还会巧妙地插入动画、图表这些元素，让 PPT 既简洁明了又特别吸引人。"); // 内容
        stmt.bindLong(4, System.currentTimeMillis());
        stmt.bindLong(5, System.currentTimeMillis());
        stmt.executeInsert();
    }

}
